1. Field of the Invention
The invention relates to a computerized method and system for tracking and reporting time spent on tasks.
2. Discussion of the Background
It is often necessary or desirable to keep track of the time spent by individuals while performing a task. Nowhere is this more true than in the business world, where fees are often determined in whole or in part by the amount of time spent by individuals in performing tasks on behalf of a customer or client. For example, professionals such as attorneys and accountants often bill their clients based on the number of hours worked on behalf of their clients. As another example, government contracts often specify that contractors will be paid based on the number of hours spent by employees such as engineers while working on a project such as designing or maintaining a system.
Even in situations where fees arc not determined based on the time spent on a task, tracking this information is often desirable. For example, in a law firm, it is often desirable for the xe2x80x9cinformation technologyxe2x80x9d group that is responsible for maintaining the firm""s computer systems to track the amount of time spent on tasks such as installing a new version of the Windows(trademark) operating system. This information might be useful to the firm""s leadership in the future when determining whether to upgrade to still newer versions of that operating system. As another example involving a law firm, even when services are provided on a fixed fee basis, there may be a need to track time both for evaluating whether the amount of the fixed fee is appropriate for future fixed fee arrangements for similar tasks, and for the purposes of awarding xe2x80x9cproductionxe2x80x9d or xe2x80x9csweatxe2x80x9d bonuses, which are based on the number of hours an attorney has worked on behalf of the firm over a time period such as a year.
The on-line advertising industry is another example of a situation in which tracking time is required, as advertising fees are sometimes calculated based on time spent viewing a web site carrying the advertising. There are many other examples in which it is desirable or necessary to track time spent on tasks.
Many of the aforementioned examples involve tracking time spent on tasks performed on a computer. For example, an attorney working on behalf of a client may spend time preparing a document on a personal computer or researching a topic on the Internet or on specialized legal research services such as LEXIS(trademark) (which may or may not be accessed via the Internet). Accountants may spend time working on spreadsheet on their computers. Engineers may spend time preparing computer code or simulating circuit designs on computerized simulation programs such as the SPICE(trademark) program.
It should also be recognized that it is often necessary to track time spent on different projects for the same customer. For example, a government defense contractor may not only have to separately track time spent on behalf of various different U.S. and foreign government agencies, it may also have to separately track time spent on different projects. In the legal profession, patent attorneys often separately track time spent working on different patent applications for the same client as well as for different clients. This categorization is often referred to as client/matter categorization in the legal profession. In the case of large corporations, it is often necessary to categorize tasks by division as well as particular client. For example, attorneys representing a large corporation may have to identify a particular task as being associated with a specific matter (e.g., the Jones litigation), a specific division (e.g., the Otis Elevator division), and a specific client (e.g., United Technologies Corp.). Thus, there is often a need for time tracking methods and systems to recognize a multi-level hierarchical categorization of tasks:
Several methods have been used in the past to track time spent on tasks. They all share, to various degrees, a basic problemxe2x80x94they require too much time and effort on the part of the timekeeper. Each minute the timekeeper spends tracking and categorizing time spent on a task subtracts from the total amount of time available to actually work on the task. Worse still, the time spent on tracking time does not usually generate revenue. Thus, an associate at a law firm who spends 8 hours at his desk on a particular day only has seven and a half hours available to work on behalf of clients if it takes that attorney a half hour to record and report his time, and this 8 hour day worked by the attorney results in only seven and a half billable hours for the firm. Thus, it is very important that the method used to track time be as quick and painless as possible for the timekeepers.
One of the simplest methods is for each timekeeper (e.g., employee, attorney, engineer, etc.) to manually record his or her time with paper and pen. This method has several drawbacks. It is time consuming and frustrating for timekeepers. Furthermore, timekeepers often forget to record their time and must often xe2x80x9cfigure it out later,xe2x80x9d sometimes days and even weeks later. This leads to inaccuracies and lost time as timekeepers may forget which projects they were working on and how much time was worked on a particular day. Thus, a timekeeper attempting to remember what tasks were performed on a day last week may decide to record four hours on a first task for client number one and four hours on a second task for client number two, while in reality three and half hours were spent on the first task, four and a half hours were spent on the second task, and an additional half hour was spent on a third task. In such a situation, client number one has been charged too much and the firm for which the timekeeper works has lost revenues in the form of fees that could have been charged to client number three.
Several timekeeping products have appeared recently which purport to automate the timekeeping process, but these products are only a minimal improvement over the manual methods. For example, TIMESLIPS, available from Best Software and TABS III from Software Technology, Inc., both provide time tracking software for use by professionals such as attorneys and accountants. These products typically require the timekeeper to manually enter the time spent on each task and assign this time to a specific customer and project. While such programs may be an improvement over the paper and pen method described above in some respects (e.g., they facilitate the generation of invoices to clients), programs such as these are only a minimal improvement (and, when the timekeeper is a poor typist, may actually be a detriment rather than an improvement) over the paper and pen method with respect to the amount of time required on the part of timekeepers to track the time they spend on tasks.
Some known systems include a stopwatch feature. In such systems, the timekeeper sets up one or more stopwatches, each of which is associated with a particular task. These stopwatches may be displayed graphically on a computer screen as the timekeeper works. When the timekeeper starts working on one task, the timekeeper starts the stopwatch associated with that task. When one stopwatch is activated, all other stopwatches are halted. When the timekeeper switches to a second task, the timekeeper activates the stopwatch associated with the second task. This automatically causes the first stopwatch to halt and any other stopwatches to remain halted. This method is somewhat of an improvement over the manual methods described above. However, it too suffers from several drawbacks. First, the timekeeper must manually enter task identification information (e.g., a client or project name) associated with each stopwatch. Second, the timekeeper may forget to start a new stopwatch as the timekeeper starts a new task. Thus, for example, a timekeeper may start using the WORD(trademark) word processing program to edit a first document for a first client, at which time a first stopwatch is activated. When the timekeeper is finished editing the first document, the timekeeper may then stay in the WORD program and start editing a second document for a second client. If the timekeeper forgets to manually create and/or start the second stop watch, the record of time spend performing the first and second tasks will be inaccurate.
Other known systems go a step further. For example, software referred to as PROJECT TRACKER 2, sold by Vakcer, Corp., automatically starts and stops stopwatches as a user switches from one application (e.g., WORD, EXCEL, OUTLOOK, etc.) to another. However, this program has several drawbacks. First, it only records information concerning the application from information available from the operating system such as the title in the title bar of the window in which the application is running. The PROJECT TRACKER 2 system is not integrated with any of the applications it is tracking (as used herein, xe2x80x9cintegratedxe2x80x9d means being configured to interact directly with an application, such as through that application""s API (application program interface), rather than simply obtaining information from the operating system).
A second problem with the PROJECT TRACKER 2 system is that is has no facility to intelligently associate its stopwatches with a specific client or matter. Rather, the user must enter this information manually. Third, the PROJECT TRACKER 2 system apparently lacks facilities for a hierarchical client/matter task categorization. Instead, separate tasks are treated the same whether they are associated with the same client or with different clients.
Fourth, the PROJECT TRACKER 2 system only allows one project to he open at a time, regardless of how many applications are open. Thus, if a user wishes to switch back and forth between working on a Word document open in a first window for one client/matter, and working on an Excel spreadsheet open in a second window for another client/matter, the user must continually open and close projects to ensure that the all the time spent working on the two separate tasks is not assigned to a single client/matter.
Still other systems are described in U.S. Pat. Nos. 5,675,510; 5,696,702; 5,963,614; 6,115,680; and 6,185,514. All of these systems include drawbacks that make them less than optimal.
What is needed is a method and system for tracking time that is easy and simple to use and that minimizes the time required to track time spent by a user on a particular task.
The present invention meets the aforementioned need to a great extent by providing a computerized time tracking system that is automated and convenient for timekeepers to use. In one aspect of the invention, a time keeping software application resident on one or more end user computers automatically tracks time spent by end users in different applications while performing tasks on the end users"" computers. In preferred embodiments, the time keeping application is integrated with at least some of the other applications on the end user computers. This integration allows the time keeping application to detect and track events, such as the opening and closing of files, that signify a start, stop, or change in the task being performed by the end users.
In another aspect of the invention, the time keeping software automatically and intelligently suggests task categorization. These suggested categorizations may be based on criteria such as the directory in which a file being processed by an application is located, and the content of the document itself (e.g., the recipient field of an email). While these categorizations may not always be fully correct, they often are and in these cases the need for the end user to enter the information manually is eliminated, thereby saving time.
In yet another aspect of the invention, the activity information (time spent, categorization, etc.) collected for a task is used to generate reports of the timekeepers"" activities. These reports may be used to generate invoices, which may be generated by the time keeping application itself or which may be used as an input into an accounting application that generates invoices. In preferred embodiments, a multi-level hierarchical of task categorization is maintained. This facilitates management of the information collected by the timekeeping application. The information from multiple end user computers may be aggregated on a centralized server.
In still another aspect of the invention, the time keeping application tracks time spent on performing tasks, which may be different from the time spent by a user in an application. To this end, preferred embodiments of the invention include an inactivity timeout feature that will automatically cause the time keeping application to stop a timer associated with a window in which an application is running if the user has not performed an action (such as depressing a key) for a period of time that exceeds a threshold.